#if !defined(AFX_SELECTPROCESS_H__B0FFF6A8_E5D2_4FB3_B819_AC06CCD08C2B__INCLUDED_)
#define AFX_SELECTPROCESS_H__B0FFF6A8_E5D2_4FB3_B819_AC06CCD08C2B__INCLUDED_

#include <iostream>
#include <map>
#include <string.h>
#include <vector>
#include <list>
#include <set>
#include <iterator>
#include <algorithm>
#include <cmath>
#include <stdio.h>
#include <assert.h>
#include <functional>
#include <sstream>
#include "stdarg.h"

#include <Tlhelp32.h>


using namespace std;

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SelectProcess.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CSelectProcess dialog

class CSelectProcess : public CDialog
{
// Construction
public:
	CSelectProcess(CWnd* pParent = NULL);   // standard constructor
	LPPROCESSENTRY32 GetCurSelProcess();
	PROCESSENTRY32 & GetSelProcess();
// Dialog Data
	//{{AFX_DATA(CSelectProcess)
	enum { IDD = IDD_SHOWALLPROCESS };
	CListBox	m_all_process;
	int		m_nSel;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSelectProcess)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	void DisplayAllProcesses(const vector<PROCESSENTRY32> processes);

	// Generated message map functions
	//{{AFX_MSG(CSelectProcess)
	virtual BOOL OnInitDialog();
	afx_msg void OnDblclkAllporcesslist();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SELECTPROCESS_H__B0FFF6A8_E5D2_4FB3_B819_AC06CCD08C2B__INCLUDED_)
